package cn.iocoder.yudao.module.iot.controller.app.device.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "用户 APP - IoT 设备 Response VO")
@Data
public class IotAppDeviceRespVO {

    @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "智能灯泡")
    private String deviceName;

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long productId;

    @Schema(description = "产品标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "a1b2c3d4e5")
    private String productKey;

    @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer deviceType;

    @Schema(description = "设备备注名称", example = "客厅灯泡")
    private String nickname;

    @Schema(description = "网关设备编号", example = "1024")
    private Long gatewayId;

    @Schema(description = "设备状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer state;

    @Schema(description = "最后上线时间")
    private LocalDateTime onlineTime;

    @Schema(description = "最后离线时间")
    private LocalDateTime offlineTime;

    @Schema(description = "设备激活时间")
    private LocalDateTime activeTime;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "设备的IP地址", example = "192.168.1.100")
    private String ip;

    @Schema(description = "设备的固件版本", example = "1.0.0")
    private String firmwareVersion;

    @Schema(description = "设备序列号", example = "SN123456789")
    private String serialNumber;

    @Schema(description = "设备配置", example = "{\"brightness\": 80}")
    private String config;

    @Schema(description = "设备唯一标识符", example = "28cfc98ab69c489fac38158e43c7708c")
    private String deviceKey;

    @Schema(description = "设备分组编号集合", example = "16,17")
    private String groupIds;

    @Schema(description = "设备图片", example = "http://xxx/device.png")
    private String picUrl;

    @Schema(description = "主机/副机", example = "主机")
    private String MasterSlave;

    @Schema(description = "所属用户ID", example = "1")
    private Long userId;

    @Schema(description = "设备详细地址", example = "北京市朝阳区xxx小区")
    private String address;

    @Schema(description = "是否删除", example = "false")
    private Boolean deleted;

    @Schema(description = "租户编号", example = "1")
    private Long tenantId;
} 